package com.avic.system.controller;


import com.avic.system.common.constant.CacheConstant;
import com.avic.system.common.util.lang.ServiceExecuteTemplate;
import com.avic.system.service.LoginLogService;
import com.avic.system.service.SystemLogService;
import com.avic.system.service.SystemMenuService;
import com.avic.system.service.SystemPermissionService;
import com.avic.system.service.SystemRoleService;
import com.avic.system.service.SystemUserService;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;


/**
 * 接口门面接口实现基类
 *
 * @author: huangsheng
 * @date: 2018/5/28 下午3:22
 */
public abstract class AbstractFacadeImpl {

    /**
     * 业务执行模板
     */
    @Autowired
    protected ServiceExecuteTemplate serviceExecuteTemplate;

    /**
     * 系统用户
     */
    @Autowired
    protected SystemUserService systemUserService;

    /**
     * 系统菜单
     */
    @Autowired
    protected SystemMenuService systemMenuService;

    /**
     * 系统角色
     */
    @Autowired
    protected SystemRoleService systemRoleService;

    /**
     * 系统权限
     */
    @Autowired
    protected SystemPermissionService systemPermissionService;

    /**
     * redis客户端
     */
    @Autowired
    @Qualifier(CacheConstant.REDIS_BEAN_NAME)
    protected RedisTemplate redisTemplate;

    /**
     * 登入日志管理
     */
    @Autowired
    protected LoginLogService loginLogService;

    /**
     * 登入日志管理
     */
    @Autowired
    protected SystemLogService systemLogService;

    @Autowired
    protected ObjectMapper objectMapper;
}
